import 'dart:convert';

NeedData needFromJson(String str) => NeedData.fromJson(json.decode(str));

String needToJson(NeedData data) => json.encode(data.toJson());

class NeedData {
  NeedData({
    this.id,
    this.userInfoId,
    this.userId,
    this.keyWord,
    this.budget,
    this.title,
    this.note,
    this.endDate,
    this.type,
    this.state,
    this.technicalFieldId,
    this.technicalFieldDesc,
    this.remarks,
    this.createBy,
    this.updateBy,
    this.createDate,
    this.updateDate,
    this.delFlag,
    this.approvalState,
    this.approvalBy,
    this.approvalOpinion,
    this.browseNum,
    this.checkSolution,
    this.webUserId,
    this.approvalUserName,
    this.typeLabel,
    this.stateLabel,
    this.approvalStateLabel,
    this.cityLabel,
    this.provinceLabel,
    this.userName,
    this.agentId,
    this.agentUserInfoId,
    this.agentUserInfoName,
    this.userPhoneNumber,
    this.agentApplyId,
    this.topState,
    this.topStartTime,
    this.topEndTime,
    this.topCreateTime,
    this.searchKey,
    this.sort,
    this.endDateS,
    this.endDateE,
    this.userArea,
    this.userProvince,
    this.userCity,
    this.userType,
    this.userCompanyTypeLabel,
    this.searchCity,
    this.searchProv,
    this.subCode,
    this.approvalFlag,
    this.workUnit,
    this.province,
    this.city,
    this.linkPerson,
    this.linkPhone,
    this.talkPerson,
    this.talkPhone,
    this.provinceName,
    this.cityName,
    this.importFlag,
    this.publishUserId,
    this.publishUserName,
    this.publishUserPhone,
    this.publishUserLogo,
    this.talkUserId,
    this.talkUserName,
    this.talkUserPhone,
    this.talkUserLogo,
    this.talkUserIsAgent,
    this.levelNum,
    this.childUserId,
    this.childUserName,
    this.childUserLogo,
    this.childUserPhone,
    this.childUserJob,
    this.talkChildUserId,
    this.talkChildUserName,
    this.talkChildUserPhone,
    this.talkChildUserLogo,
    this.talkChildUserJob,
    this.approvalTime,
  });

  int id;
  int userInfoId;
  dynamic userId;
  String keyWord;
  String budget;
  String title;
  String note;
  dynamic endDate;
  String type;
  String state;
  String technicalFieldId;
  String technicalFieldDesc;
  dynamic remarks;
  dynamic createBy;
  dynamic updateBy;
  DateTime createDate;
  dynamic updateDate;
  dynamic delFlag;
  int approvalState;
  dynamic approvalBy;
  dynamic approvalOpinion;
  int browseNum;
  dynamic checkSolution;
  dynamic webUserId;
  dynamic approvalUserName;
  String typeLabel;
  String stateLabel;
  String approvalStateLabel;
  String cityLabel;
  String provinceLabel;
  String userName;
  dynamic agentId;
  dynamic agentUserInfoId;
  dynamic agentUserInfoName;
  dynamic userPhoneNumber;
  dynamic agentApplyId;
  dynamic topState;
  dynamic topStartTime;
  dynamic topEndTime;
  dynamic topCreateTime;
  dynamic searchKey;
  dynamic sort;
  dynamic endDateS;
  dynamic endDateE;
  dynamic userArea;
  dynamic userProvince;
  dynamic userCity;
  int userType;
  dynamic userCompanyTypeLabel;
  dynamic searchCity;
  dynamic searchProv;
  dynamic subCode;
  dynamic approvalFlag;
  dynamic workUnit;
  String province;
  String city;
  dynamic linkPerson;
  dynamic linkPhone;
  dynamic talkPerson;
  dynamic talkPhone;
  dynamic provinceName;
  dynamic cityName;
  dynamic importFlag;
  int publishUserId;
  String publishUserName;
  String publishUserPhone;
  String publishUserLogo;
  int talkUserId;
  String talkUserName;
  String talkUserPhone;
  String talkUserLogo;
  bool talkUserIsAgent;
  int levelNum;
  dynamic childUserId;
  dynamic childUserName;
  dynamic childUserLogo;
  dynamic childUserPhone;
  dynamic childUserJob;
  dynamic talkChildUserId;
  dynamic talkChildUserName;
  dynamic talkChildUserPhone;
  dynamic talkChildUserLogo;
  dynamic talkChildUserJob;
  dynamic approvalTime;

  factory NeedData.fromJson(Map<String, dynamic> json) => NeedData(
        id: json["id"],
        userInfoId: json["userInfoId"],
        userId: json["userId"],
        keyWord: json["keyWord"],
        budget: json["budget"],
        title: json["title"],
        note: json["note"],
        endDate: json["endDate"],
        type: json["type"],
        state: json["state"],
        technicalFieldId: json["technicalFieldId"],
        technicalFieldDesc: json["technicalFieldDesc"],
        remarks: json["remarks"],
        createBy: json["createBy"],
        updateBy: json["updateBy"],
        createDate: DateTime.parse(json["createDate"]),
        updateDate: json["updateDate"],
        delFlag: json["delFlag"],
        approvalState: json["approvalState"],
        approvalBy: json["approvalBy"],
        approvalOpinion: json["approvalOpinion"],
        browseNum: json["browseNum"],
        checkSolution: json["checkSolution"],
        webUserId: json["webUserId"],
        approvalUserName: json["approvalUserName"],
        typeLabel: json["typeLabel"],
        stateLabel: json["stateLabel"],
        approvalStateLabel: json["approvalStateLabel"],
        cityLabel: json["cityLabel"],
        provinceLabel: json["provinceLabel"],
        userName: json["userName"],
        agentId: json["agentId"],
        agentUserInfoId: json["agentUserInfoId"],
        agentUserInfoName: json["agentUserInfoName"],
        userPhoneNumber: json["userPhoneNumber"],
        agentApplyId: json["agentApplyId"],
        topState: json["topState"],
        topStartTime: json["topStartTime"],
        topEndTime: json["topEndTime"],
        topCreateTime: json["topCreateTime"],
        searchKey: json["searchKey"],
        sort: json["sort"],
        endDateS: json["endDateS"],
        endDateE: json["endDateE"],
        userArea: json["userArea"],
        userProvince: json["userProvince"],
        userCity: json["userCity"],
        userType: json["userType"],
        userCompanyTypeLabel: json["userCompanyTypeLabel"],
        searchCity: json["searchCity"],
        searchProv: json["searchProv"],
        subCode: json["subCode"],
        approvalFlag: json["approvalFlag"],
        workUnit: json["workUnit"],
        province: json["province"],
        city: json["city"],
        linkPerson: json["linkPerson"],
        linkPhone: json["linkPhone"],
        talkPerson: json["talkPerson"],
        talkPhone: json["talkPhone"],
        provinceName: json["provinceName"],
        cityName: json["cityName"],
        importFlag: json["importFlag"],
        publishUserId: json["publishUserId"],
        publishUserName: json["publishUserName"],
        publishUserPhone: json["publishUserPhone"],
        publishUserLogo: json["publishUserLogo"],
        talkUserId: json["talkUserId"],
        talkUserName: json["talkUserName"],
        talkUserPhone: json["talkUserPhone"],
        talkUserLogo: json["talkUserLogo"],
        talkUserIsAgent: json["talkUserIsAgent"],
        levelNum: json["levelNum"],
        childUserId: json["childUserId"],
        childUserName: json["childUserName"],
        childUserLogo: json["childUserLogo"],
        childUserPhone: json["childUserPhone"],
        childUserJob: json["childUserJob"],
        talkChildUserId: json["talkChildUserId"],
        talkChildUserName: json["talkChildUserName"],
        talkChildUserPhone: json["talkChildUserPhone"],
        talkChildUserLogo: json["talkChildUserLogo"],
        talkChildUserJob: json["talkChildUserJob"],
        approvalTime: json["approvalTime"],
      );

  Map<String, dynamic> toJson() => {
        "id": id,
        "userInfoId": userInfoId,
        "userId": userId,
        "keyWord": keyWord,
        "budget": budget,
        "title": title,
        "note": note,
        "endDate": endDate,
        "type": type,
        "state": state,
        "technicalFieldId": technicalFieldId,
        "technicalFieldDesc": technicalFieldDesc,
        "remarks": remarks,
        "createBy": createBy,
        "updateBy": updateBy,
        "createDate": createDate.toIso8601String(),
        "updateDate": updateDate,
        "delFlag": delFlag,
        "approvalState": approvalState,
        "approvalBy": approvalBy,
        "approvalOpinion": approvalOpinion,
        "browseNum": browseNum,
        "checkSolution": checkSolution,
        "webUserId": webUserId,
        "approvalUserName": approvalUserName,
        "typeLabel": typeLabel,
        "stateLabel": stateLabel,
        "approvalStateLabel": approvalStateLabel,
        "cityLabel": cityLabel,
        "provinceLabel": provinceLabel,
        "userName": userName,
        "agentId": agentId,
        "agentUserInfoId": agentUserInfoId,
        "agentUserInfoName": agentUserInfoName,
        "userPhoneNumber": userPhoneNumber,
        "agentApplyId": agentApplyId,
        "topState": topState,
        "topStartTime": topStartTime,
        "topEndTime": topEndTime,
        "topCreateTime": topCreateTime,
        "searchKey": searchKey,
        "sort": sort,
        "endDateS": endDateS,
        "endDateE": endDateE,
        "userArea": userArea,
        "userProvince": userProvince,
        "userCity": userCity,
        "userType": userType,
        "userCompanyTypeLabel": userCompanyTypeLabel,
        "searchCity": searchCity,
        "searchProv": searchProv,
        "subCode": subCode,
        "approvalFlag": approvalFlag,
        "workUnit": workUnit,
        "province": province,
        "city": city,
        "linkPerson": linkPerson,
        "linkPhone": linkPhone,
        "talkPerson": talkPerson,
        "talkPhone": talkPhone,
        "provinceName": provinceName,
        "cityName": cityName,
        "importFlag": importFlag,
        "publishUserId": publishUserId,
        "publishUserName": publishUserName,
        "publishUserPhone": publishUserPhone,
        "publishUserLogo": publishUserLogo,
        "talkUserId": talkUserId,
        "talkUserName": talkUserName,
        "talkUserPhone": talkUserPhone,
        "talkUserLogo": talkUserLogo,
        "talkUserIsAgent": talkUserIsAgent,
        "levelNum": levelNum,
        "childUserId": childUserId,
        "childUserName": childUserName,
        "childUserLogo": childUserLogo,
        "childUserPhone": childUserPhone,
        "childUserJob": childUserJob,
        "talkChildUserId": talkChildUserId,
        "talkChildUserName": talkChildUserName,
        "talkChildUserPhone": talkChildUserPhone,
        "talkChildUserLogo": talkChildUserLogo,
        "talkChildUserJob": talkChildUserJob,
        "approvalTime": approvalTime,
      };
}
